為什麼沒有人做 CTF 工具大全這種好東西?感覺入門要想成為腳本小子得知道能用哪些腳本吧... 不管怎麼說,飛飛想整理一下這類東西,結構大概是分類 - 名稱 - 介紹 & 用法示例
只是咱喜歡的工具哦,咱更喜歡用 Linux 呢,所以部分轉譯跑不了或者性能很低的咱就不列了,廣為人知的工具像 BurpSuite 這種咱也不列了
寫了一點發現原來隨波逐流軟件站給了一些工具,那咱就幫他整合一下
編解碼#
隨波逐流#
一鍵解碼,下載地址: 官網
不過這個居然要聯網檢查更新,賽博潔癖犯了,哪天給他破解了
用 Bottles 使用 exe 體驗也很糟糕,差評
XXencode#
在線一鍵解碼工具,有些線下賽禁止聯網,還是只能用隨波逐流了 (呕)
點擊訪問
Crypto#
這個主要是數學問題吧,用到的都是一些 python 的庫
gmpy2#
高精度高效率大數運算庫
pip install gmpy2
PWN#
pwntools#
pip install pwntools
Web#
wabt#
用於將 Webassmbly 文件轉換為 C 語言代碼,然後放到 IDA 裡分析
wasm2c webassembly.wasm -o web.c -o-h web.h
通過 wasm2c 導出的 C 語言代碼本身並不包含可執行入口,同時會缺少運行時,wasm_rt_* 由 wabt 項目裡的 wasm-rt-impl.c 提供;而 w2c_wasi__snapshot__preview1_fd_write、w2c_env_0x5Femscripten_memcpy_js 等名字是 wasm2c 為 WASI/Emscripten 導入生成的包裝函數,需要自己實現或鏈接到現成的 “迷你 WASI” 實現。官方示例把這些實現放在一個 imports.c 裡,只要返回 0 或調用真正的系統調用即可;否則仍會報 “unknown import”
// imports.c
#include <stddef.h>
#include <stdint.h>
#include "wasm-rt.h"
uint32_t w2c_wasi__snapshot__preview1_fd_write(void* unused, uint32_t fd,
uint32_t iovs, uint32_t iovs_len,
uint32_t nwritten) {
return 0;
}
void w2c_env_0x5Femscripten_memcpy_js(void* unused) {}
void w2c_env_emscripten_resize_heap(void* unused) {}
手寫 main.c
可以通過編譯
#include "web.h"
#include <stdio.h>
int main(void) {
/* 1) 初始化 wasm‑rt 全局運行時 */
wasm_rt_init();
/* 2) 實例化模塊(不需要完整導入表就傳 NULL) */
struct w2c_webassembly inst;
wasm2c_webassembly_instantiate(&inst, NULL, NULL);
/* 3) 運行所有全局構造函數(static ctors) */
w2c_webassembly_0x5F_wasm_call_ctors(&inst);
/* 4) 初始化 Emscripten 堆 */
w2c_webassembly_emscripten_stack_init(&inst);
/* 5) 調用導出 main(傳 argc=0, argv_ptr=0) */
u32 rc = w2c_webassembly_main(&inst, 0, 0);
printf("wasm main returned %u\n", rc);
/* 6) 清理實例和運行時 */
wasm2c_webassembly_free(&inst);
wasm_rt_free();
return 0;
}
編譯命令
gcc -O2 -I. -I/usr/include/wabt/wasm2c -DWASM_RT_MALLOC \
web.c imports.c main.c /usr/share/wabt/wasm2c/wasm-rt-impl.c \
-lm -o webdemo
數字取證#
Volatility#
內存取證工具
git clone https://github.com/volatilityfoundation/volatility3.git
cd volatility3
pip install -r requirements.txt
使用例#
envars
是 Volatility 的一個插件,用於提取和列出內存轉儲中的環境變量。環境變量包含了系統和用戶配置的一些信息,比如路徑、系統設置等。
.\volatility -f .\1.raw --profile=Win7SP1x64 envars | grep 'n0wayback'
pslist
是 Volatility 中的一個插件,用於列出內存中的所有進程。它通過分析內存中的進程鏈表,列出所有活動的進程信息,包括進程的 PID、進程名、父進程等。
.\volatility -f .\1.raw --profile=Win7SP1x64 pslist
0xfffffa8001a022a0 mspaint.exe 2052 1028 6 120 1 0 2024-03-04 05:50:22 UTC+0000
0xfffffa8003c68a80 cmd.exe 4188 1028 3 111 1 0 2024-03-04 05:50:26 UTC+0000
0xfffffa800418c060 Code.exe 888 1028 31 696 1 0 2024-03-04 05:52:52 UTC+0000
發現存在 mspaint.exe
進程,進行一個內存 dump
memdump
是 Volatility 中的一個插件,用於提取內存中的特定進程的內存映像。這個插件會根據指定的 PID 將進程的內存內容提取出來。
.\volatility -f .\1.raw --profile=Win7SP1x64 memdump -p 2052 -D ./
consoles
是 Volatility 中的一個插件,用於提取並列出與控制台相關的會話信息。控制台會話指的是命令行工具(如 cmd.exe 或 powershell.exe)的活動會話,Volatility 將列出它們的詳細信息。
具體來說,consoles
插件會顯示所有在內存中存在的控制台會話的相關數據,包括會話 ID、命令歷史、運行的命令等信息。
.\volatility -f .\1.raw --profile=Win7SP1x64 consoles
雜項#
jwt.io#
可以在線編碼解碼 JWT Token 呢
SQL 注入#
ffifdyop#
md5(ffifdyop) = 'or'66�]��!r,��b
在 md5 後可以用此恆真萬能口令注入